package hu.bme.iit.szlab4.continuity;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Jatekos {
	private Pozicio aktKoord;
	private Tile aktTile;
	private int kulcsSzam;
	private int ugras;
	private int defaultUgras;
	private int meret;
	private Pozicio kezdoKoord;
	private Tile kezdoTile;
	private double radIrany;

	public void setAktKoord(Pozicio p) {

	}

	// Tukor
	public Pozicio getAktKoord() {
		// Input beolvasasanak elokeszitese
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));;
		String sor = "inic";

		System.out.println(Main.getTabok()
				+ "Visszateresi ertek: Megadja a Jatekos aktualis helyzetet.");
		System.out
				.println(Main.getTabok()
						+ "Pozicio tipus, egy X es egy Y koordinatabol all, amelyek egesz szamok.");
		System.out.println(Main.getTabok()
				+ "Adja meg a visszateresi ertek X komponenset!");

		// Visszateresi ertek bekerese a felhasznalotol.
		int x = -1; // -1-el inicializalunk a ciklusfeltetel miatt
		while (!(x >= 0)) {
			try {
				sor = reader.readLine();
				x = Integer.parseInt(sor);
				if (!(x >= 0)) {
					throw new Exception();
				}
			} catch (Exception e) {
				// Hibas inputot hibauzenettel es ujboli bekeressel kezeljuk.
				System.out
						.println(Main.getTabok()
								+ "A bevitt ertek nem felel meg a megkoteseknek! Ezek a kovetkezok:");
				System.out.println(Main.getTabok()
						+ "Nullanal nagyobb gesz szam.");
			}
		}

		System.out.println(Main.getTabok()
				+ "Adja meg a visszateresi ertek Y komponenset!");
		// Visszateresi ertek bekerese a felhasznalotol.
		int y = -1; // -1-el inicializalunk a ciklusfeltetel miatt
		while (!(y >= 0)) {
			try {
				sor = reader.readLine();
				y = Integer.parseInt(sor);
				if (!(y >= 0)) {
					throw new Exception();
				}
			} catch (Exception e) {
				// Hibas inputot hibauzenettel es ujboli bekeressel kezeljuk.
				System.out
						.println(Main.getTabok()
								+ "A bevitt visszateresi ertek nem felel meg a megkoteseknek! Ezek a kovetkezok:");
				System.out.println(Main.getTabok()
						+ "Nullanal nagyobb egesz szam");
			}
		}
		System.out.println(Main.getTabok() + "Visszateresi ertek: " + x + ","
				+ y);

		return new Pozicio(x, y);
	}

	// Tukor
	public int getMeret() {
		System.out.println(Main.getTabok()
				+ "Visszateresi ertek: Megadja, hogy a Jatekos meretet.");
		return meret;
	}

	// Tukor
	public Tile getAktTile() {
		System.out
				.println(Main.getTabok()
						+ "Visszateresi ertek: Annak a Tile-nak a referenciaja, amelyben a Jatekos eppen tartozkodik.");
		return aktTile;
	}

	public void kulcsFelvesz() {

	}

	// Makkos
	// bekeri majd visszaadja a jatekos kulcsainak a szamat
	public int getKulcsSzam() {
		// dontes bekerese, kulcsszam
		System.out.println(Main.getTabok()
				+ "Visszateresi ertek: A jatekos kulcsainak a szama.");
		System.out.print(Main.getTabok()
				+ "Adja meg a kulcsszamot (0 es a zarak szama kozott): ");

		// Input beolvasasa
		BufferedReader reader;
		String sor;
		reader = new BufferedReader(new InputStreamReader(System.in));
		try {
			sor = reader.readLine();
			kulcsSzam = Integer.parseInt(sor);
		} catch (Exception e) {
			
		}

		return kulcsSzam;
	}

	public int getUgras() {
		// nem vegleges
		return ugras;
	}

	public void setToDefaultUgras() {

	}

	public void reszletesMozgat() {

	}

	public void ugras() {

	}

	public void atmegy(Tile t) {
		
	}

	public void meghal() {

	}

	public void kimegy() {

	}

	public void setKezdoKoord(Pozicio p) {

	}

	public void setKezdoTile(Tile t) {

	}

	public void setIrany(double ujRadIrany) {
		
	}

	// Tuzko
	public double getIrany() {
		System.out
				.println(Main.getTabok()
						+ "Visszateresi ertek: A jatekos mozgasi iranya radianban megadva.\n"
						+ Main.getTabok()
						+ "Barmilyen racionalis szam lehet! Tizedesvesszo: '.'\n"
						+ Main.getTabok() + "Adja meg a visszateresi erteket!");

		// A felhasznaloi input ellenorzese.
		boolean ok = false;
		while (!ok) {
			try {
				BufferedReader consoleIn = new BufferedReader(
						new InputStreamReader(System.in));
				String stringInt = consoleIn.readLine();
				radIrany = Double.parseDouble(stringInt);
				if (radIrany >= Double.MIN_VALUE)
					ok = true;
				else
					throw new Exception();

				// Ha a felhasznalo nem megfelelo adatot vitt be, akkor
				// kivetel dobodik es azt itt kezeljuk.
				// Kiirjuk, hogy nem megfelelo a bevitt adat es ujbol
				// leirjuk a kriteriumokat.
			} catch (Exception e) {
				System.out
						.println(Main.getTabok()
								+ "A bevitt parameter nem felel "
								+ "meg a megkoteseknek! Ezek a kovetkezok:\n"
								+ Main.getTabok()
								+ "Barmilyen racionalis szam lehet! Tizedesvesszo: '.'\n"
								+ Main.getTabok()
								+ "Adja meg a visszateresi erteket!");
			}
		}
		System.out.println(Main.getTabok() + "Visszateresi ertek: " + radIrany);
		return radIrany;
	}
}
